#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
片段列表区域模块
负责创建和管理片段列表区域的UI组件
"""

from PySide6.QtWidgets import QLabel, QVBoxLayout, QHBoxLayout, QGroupBox, QListWidget, QPushButton, QListWidgetItem, QAbstractItemView
from PySide6.QtCore import Qt
from src.config import Config


class SegmentListArea:
    """片段列表区域类"""
    
    def __init__(self):
        """初始化片段列表区域"""
        self.segment_list_label = None
        self.segment_list_widget = None
        self.delete_segment_button = None
        self.clear_segments_button = None
        
    def create_segment_list_area(self, parent_layout):
        """
        创建片段列表区域
        
        创建用于显示和管理已标记片段的区域，包含片段列表标签、片段列表控件
        和片段操作按钮。片段列表支持单选，可以通过颜色区分保留片段和删除片段。
        
        Args:
            parent_layout (QVBoxLayout): 父布局管理器，用于添加片段列表区域组件
            
        Returns:
            tuple: 包含所有创建的组件
        """
        segment_group = QGroupBox(Config.SEGMENT_GROUP_TITLE)
        segment_layout = QVBoxLayout(segment_group)
        
        # 片段列表标签
        self.segment_list_label = QLabel(Config.SEGMENT_LIST_DEFAULT_TEXT)
        segment_layout.addWidget(self.segment_list_label)
        
        # 片段列表控件
        self.segment_list_widget = QListWidget()
        self.segment_list_widget.setSelectionMode(QAbstractItemView.SingleSelection)
        segment_layout.addWidget(self.segment_list_widget)
        
        # 片段操作按钮布局
        segment_button_layout = QHBoxLayout()
        
        # 删除选中片段按钮
        self.delete_segment_button = QPushButton(Config.DELETE_SEGMENT_BUTTON_TEXT)
        segment_button_layout.addWidget(self.delete_segment_button)
        
        # 清空所有片段按钮
        self.clear_segments_button = QPushButton(Config.CLEAR_SEGMENTS_BUTTON_TEXT)
        segment_button_layout.addWidget(self.clear_segments_button)
        
        segment_layout.addLayout(segment_button_layout)
        
        parent_layout.addWidget(segment_group)
        
        return (
            segment_group,
            self.segment_list_label,
            self.segment_list_widget,
            self.delete_segment_button,
            self.clear_segments_button
        )